The present invention is related to, but not limited to, the traversal of the Internet, also known as the world wide web. It specifically relates to the interaction of users of the world wide web using proxies or representations of the user in a simulated or virtual world and selection of objects within that world.
In recent history, computers have become much more pervasive in society. In addition, they have become more powerful, faster and have significantly more storage than they did just a few short years ago. These exponential increases in speed, storage and processor power have provided the necessary infrastructure for computers to network together effectively.
The most publicized computer network in existence is referred to as the Internet. The Internet is a connection of computers using the TCP/IP protocol. This has evolved into what is now referred to as the world wide web which provides a somewhat cognitive interface into the Internet. The world wide web allows users to access information by indicating the location of the information which they desire to retrieve or by traversing hyper-text links which cross-reference information in many different locations. This is made possible by the implementation of a universal resource locator (URL) as a way of locating information on the world wide web.
Many products have been developed which assist the user in searching the web for information. Access to the world wide web can be accomplished very inexpensively using a phone line, an inexpensive computer and a software program called a web browser such as Netscape""s Navigator. This ability to inexpensively connect into the world wide web has encouraged its use for much more than business purposes. The world wide web is used for educational research, shopping, games, making reservations, trading stock and numerous other purposes. Children, as well as adults, are frequent users of the world wide web.
While it was the advent of two dimensional graphically intense web sites that spurred the popularity of the Internet, the next level of technology may bring Internets, internal networks such as intranets, and networks in general to a new level. The intent of this phase of Internet development has been to render web sites sensually. That is, a user interacts with or exists within a site and experiences and perceives the site from within. This is referred to as Virtual Reality and is intended to perceptualize the network or to have the network rendered to humans with more of their senses. It puts the user in the center of the Internet.
While Virtual Reality is still in its infancy, it traditionally uses computer simulations containing three-dimensional (3D) graphics and devices to allow the user to interact with the simulation. Much of what the user has been able to browse as xe2x80x9cdataxe2x80x9d on the web may be able to be xe2x80x98experiencedxe2x80x99 as a 3D web site in the future. 3D web sites are constructed with a Virtual Reality Modeling Language, herein referred to as VRML, which allows for the design and implementation of platform-independent scene descriptions. VRML is a file format for describing interactive 3D objects and worlds to be experienced on the world wide web utilizing HTTP (A HyperText Transfer Protocol used on the Internet) in its implementation.
In today""s virtual reality environments when a user enters a virtual world they take on a character persona known as the user""s avatar. While the user is present in the world the user sees through the eyes of the avatar as they communicate with other avatars. The user can also signal the avatar to execute a range of emotions or actions that are viewable by any avatars looking their direction.
There also exist many objects, other than avatars, that users can interact with while traversing a virtual world. These other objects incorporate varying levels of function that allow them to enhance a user""s virtual experience. For example, a virtual dog may exhibit a high-degree of programmatic interaction with an avatar even though it is not controlled by another user. This includes possibly performing tricks once selected by a user. In contrast, a virtual dog house may exhibit less functionality; possibly only activating a doghouse light when a user selects it.
This concept of selecting an object and it providing feedback when selected is a key element of truly immersive virtual worlds. Also, due to the large number of objects present in a given virtual world scene, the selection process is necessary to focus interactions and avoid unnecessary execution of actions by all objects within a user""s view. Such focusing of interactions is currently possible through the use of pointing device selection. In other words, when a user sees a dog in a dog house, the user can mouse click on the dog to prompt interaction with the dog. In this sense, the user and dog have entered into an interactive relationship. Generally, that relationship continues until the user selects another object to interact with.
A basic capability offered in some virtual world implementations is that of proximity sensors. These proximity sensors are set programmatically by an object to generate a proximity event when an avatar comes within a certain distance of the object. Such proximity events can be used by an object to signal selection similar to the mouse click described above. The result is that a user can begin interacting with the virtual dog by moving within that dog""s proximity sensor range. This is a desirable next step in creating intuitive worlds, but it also creates some new and complex problems.
When multiple objects, such as the dog and the dog house, incorporate proximity sensors the user will experience the effect of overlapping proximity sensors whereby each object thinks they have been selected. Thus, current selection by proximity approaches are limited to either minimizing the functional objects in a virtual area or accepting the effects of simultaneously establishing interactive relationships with multiple objects. An initially promising improvement is to define extremely small sensor ranges which at least minimize the number of objects likely to be simultaneously triggered. However, a significant problem that arises with such an approach is that the resulting proximity is too close for a user to appreciate the visual aspects of the interactive relationship they create. In other words, even if the selected dog performs tricks, the user has been forced to move too close to the dog to adequately view the interaction. Further, approaching a dog laying in a dog house will trigger selection of the dog and the house regardless of how small the sensor ranges are defined. These problems limit the use of selection by proximity and thus limit the resulting immersiveness of today""s virtual worlds.
The present invention addresses the two problems with today""s proximity selection through the use of multiple proximity sensors and algorithms to distinguish selection, de-selection and re-selection events. With respect to single object selection, inner and outer selection ranges are defined to allow enhanced interaction after selection. Further, the present invention uses these new selection ranges to manage overlapping proximity ranges for multiple objects. The resulting selection capability distinctly exceeds what is available in the present state of virtual world interaction solutions.
The present invention defines single object selection through the use of inner and outer selection ranges. An inner selection range is used by an object to define the distance at which an incoming avatar would trigger a selection event and thus prompt an interactive relationship. The outer selection range is used by an object to define the distance that an avatar can retreat to after selection and still maintain the interactive relationship. Once an avatar moves beyond the outer selection range, the object receives a de-selection event. This approach allows, for example, a user to move close to a virtual dog and trigger selection. In addition, however, the user is able to move away from the dog to view interactions, provided the user does not move beyond the outer selection range. This approach of multiple selection ranges allows the user to interact much like the real world where people are able to step closely to introduce themselves and then step back while continuing a conversation.
The present invention defines a process for managing inner and outer selection ranges both at a virtual object level and at a virtual world framework level. Thus, programmers of virtual objects can benefit even if their platform world does not incorporate framework improvements for this capability. By using a scheme of proximity sensor bookkeeping and state transitions, an object can decide what proximity events are actually selection events. More particularly, objects can keep track of whether they are currently selected and monitor proximity events to manipulate that state. This is best described in discussion of the preferred embodiment where the algorithm implementation is detailed.
A more robust incorporation of the present invention involves virtual world framework enhancements. Such enhancements allow objects to create selection sensors rather than proximity sensors. All the virtual object then monitors is selection, de-selection or re-selection events sent from the framework. No determination is needed at the virtual object level to transform proximity events into selection events. Moving the transformation up a level to the framework also yields important sensor management benefits that are not possible when management is left to individual virtual objects. This is where the present invention is able to improve on overlapping sensor problems inherent in existing technology.
The present invention defines a framework method for handling inner and outer selection ranges that minimizes the number of proximity sensors managed in the entire system. By defining an infinite range proximity sensor as defined by today""s virtual world languages, the framework can monitor movement of all objects in the world. Once an object registers inner and outer selection ranges with the framework, the framework proceeds to monitor avatar movements and triggers selection events when an avatar enters an object""s inner selection range. The framework then sends a de-selection event whenever the avatar moves beyond the outer selection range. Thus, by framework enhancements, an avatar is able to move close enough to select an object and then step back to perceive the interactive relationship.
In addition to the standard sensor management described above, a framework implementing the present invention applies an algorithm for resolving overlapping sensor ranges. Although the preferred embodiment provides a detailed look at a couple notable results of this algorithm, a short example is provided here for clarity. When the framework determines that an avatar has entered a virtual object""s (A) inner selection range, the framework checks to see if that avatar currently has an interactive relationship with another object (B). If so, the framework sends a selection event to A and a de-selection event to B. Then, when the avatar retreats from A beyond its outer selection range, the framework sends a de-selection event to A and a re-selection event to B. If the avatar continues moving to beyond B""s outer selection range then the framework sends B a de-selection event. The present invention defines a re-selection event rather than re-using a general selection event because objects may wish to interact differently if a user never left their inner selection range. Further, for added flexibility, the present invention defines a re-select flag which can be cleared to disallow any re-selection events on exit from inner selection ranges. This may be useful to simplify exiting of interactive relationships. When the flag is set, exiting movement could generate repeated re-selection events when a user would rather just quickly step away and end all interactions. This is discussed in the preferred embodiment along with an alternative approach through proper outer selection range definitions.
The preferred embodiment describes proximity and selection ranges in shapes of circles formed by a center point and radius. It is important to note that the present invention does not require proximity sensors to operate with any particular geometry. In other words, the proximity sensor could create an invisible circle or sphere around the object that generates proximity events when crossed. Further, the proximity range could involve non-symmetric complex shapes, and generate proximity events whenever the range is crossed. The process necessary for creating such complex proximity ranges is not defined by the present invention. Rather, the present invention merely depends on manipulating proximity events that can be generated by any number of proximity range implementations. The use of circular proximity ranges in the preferred embodiment is not intended to limit the present invention with regard to proximity sensor choice.